#range(len(x))的用法
x = 'runoob'
for i in range(len(x)) :
    print(x[i])
#range(n)是不会遍历到n的，而是遍历0,1,2...n-1

#确定10到20间的质数
for num in range(10,20):  # 迭代 10 到 20 之间的数字
   for i in range(2,num): # 根据因子迭代
      if num%i == 0:      # 确定第一个因子
         j=num/i          # 计算第二个因子
         print '%d 等于 %d * %d' % (num,i,j)
         break            # 跳出当前循环
   else:                  # 循环的 else 部分
      print num, '是一个质数'

#声明以列表为元素的列表，可以省去循环声明这种愚蠢的方式，保证元素够用即可
L = [[] for i in range(0,300050)]

#迭代器,其以StopIteration异常发生时判定终点
l = [i for i in range(5)]
it = iter(l)
try:
   while True:
      print(next(it))
except StopIteration:
   pass

#map函数的用法，
def  func1(x):

      #  对序列中的每一个元素乘以10并返回
    return x * 10

'''
    map() 会根据提供的函数对指定序列做映射。
    序列中的每一个元素调用 func1 函数，返回新列表。
'''
x = map(func1, range(0, 10))
print(list(x)) #  map函数返回的迭代器只能迭代一次，迭代之后会自动清空
print(list(x))
print("***" * 20) #  将map函数返回的迭代器保存转为list，可以多次使用
y = list(map(func1, range(0, 10)))
print(y)
print(y)

#把列表内的类型全部转换
a = [1,2,3,4,5]
b = [ str(i) for i in a ]

#输入一个字符串以空格划分，需要提取其中数据时,会给各自赋值，但并没有列表产生
op, l = [int(ele) for ele in input().split(' ')]

#最常用的存放数据到列表的方式
n = 5
r = []
while n>0:
   r.append(input())
   n -= 1